package com.xyw.code.taobaokeapi.service;

import com.taobao.api.ApiException;
import com.taobao.api.response.TbkDgMaterialOptionalResponse;
import com.taobao.api.response.TbkItemInfoGetResponse;
import com.xyw.common.taobaokecommon.vo.CommissionInfoVO;
import com.xyw.common.taobaokecommon.vo.TklConvertVO;

/**
 * Created with IntelliJ IDEA.
 * User: xuyiwei
 * Date: 2020/8/5
 * Time: 下午2:38
 * Email: 1328312923@qq.com
 * Description: 淘宝客service
 **/
public interface TbkService {

    /**
     * 根据token获得商品链接
     * @param token
     * @return
     */
    String getUrlByShare(String token);

    /**
     * 1、截取淘口令
     * 2、淘口令转链接
     * 3、根据链接的id和url得到商品详情
     * 4、判断有没有优惠
     * 5、根据优惠和url直接生成单子
     */

    /**
     * 根据分享的内容获得淘口令
     * @param token 緮置这行话¢kNuO1SLwyXz¢转移至τаo宝аρρ【三元方白纯牛奶250ml*24盒火遍帝都生牛乳制造】；或https://m.tb.cn/h.V4h013w?sm=9aa805 点几鏈→接，再选择瀏..覽●噐○dakai
     * @return
     */
    String getTklByShare(String token);

    /**
     * 将淘口令转换成详细信息  包括商品id，链接，商铺id，原始链接，推广人员
     * @param tkl
     * @return
     */
    TbkDgMaterialOptionalResponse queryMaterial(String tkl);

    /**
     * 根据产品id获得商品信息
     * @param productId
     * @return
     */
    TbkItemInfoGetResponse queryByProductId(String productId) throws ApiException;


    /**
     * url log 和描述转成淘口令返回
     * @param text
     * @param url
     * @param logo
     * @return
     */
    String getCouponTklByUrl(String text,String url,String logo);


    /**
     * 返利计算 得到该商品的返利金额
     * (折扣价-优惠券)*(佣金比例 / 10000)
     * 我们可以看到我们需要拿折扣价减去优惠券金额再乘以一个佣金比例除以1w
     * 就拿我返回的JSON来计算
     * 折扣价(zk_final_price)=68
     * 优惠券(coupon_amount)=0(无优惠券)
     * 佣金比例(commission_rate)=150
     * (68-0)*(150/10000)=1.02
     * @param data
     * @return
     */
    Double getCommissionPrice(String zkFinalPriceStr,String couponAmountStr,
                              String commissionRateStr);


    /**
     * 根据淘口令获得商品返利信息
     * @param token
     * @return
     */
    CommissionInfoVO getCommissionInfo(String token);


    /**
     * 判断是否有优惠
     * @param commissionInfoVO
     * @return
     */
    Boolean isHaveCommission(CommissionInfoVO commissionInfoVO);

    /**
     * 返回购买淘口令
     * @param commissionInfoVO
     * @return
     */
    String covertTkl(CommissionInfoVO commissionInfoVO);
 }
